I recently found out about a really good way to train pokemon before your Elite Four match, by battling Gabby and Ty over and over again.
Essentially, what you do is do the battle with Gabby and Ty with the 2 pokemon you want to train. By the end of the battle your pokemon will get 2000 xp total. Keep on doing this, and you'll eventually get high levels and exp. It's also good xp since the pokemon are pretty weak, maxing at lv 39.
An alternative is to train with only one pokemon in the party, so it can get a lot more xp. You can also give one of your pokemon the EXP share, so they get the majority of the xp.
NOTE: If you can't find them, you might've done the interview with them. If you did, they moved to another one of their spots. The spots are:
Route 111 (North of Mauville)
Route 118 (East of Mauville, on the other side of the water)
Route 120 (East of Fortree)
Thanks and happy training!
EDIT: before E4*