The best spot is on the seafoam islands.
when your at mossdeep city, surf straight down to route 27 and youll find a spot to dive in. dive and you should see like a trench thing just follow it and youll find a light spot to go back above water. the cave is really tricky to get through though. im still trying to figure it out! good luck
Other than secret bases the best spot is the Pokemon league.
well it's probably were there are fire Pokemon or if you have a exp share go to the elite four and keep battiling ;)
you go to mossdeep city then you go to the second stairs on the right and surf south. after a while, you will see a diving spot leading south. dive down and keep on going south. when you get at a "T" junction, go south until you find an entrance of some sort. go through it, dive again and your there!
I find that a very good training spot is near the two running black belts on One Island. Use the VS Seeker to rebattle the three trainers there. They have a Machop, Machoke or Machamp with varying levels depending on your stats. Once you defeat them, run into the Ember Spa, heal, and come back out. This is about 120 steps, just enough to charge your VS Seeker again. I used this method to evolve my Dragonite, Tyranitar, Kabutops, Jolteon, Vaporeon, and I got my Articuno, Mewtwo and Charizard to level 100 this way. A tip would also to register your VS Seeker and use the Running Shoes (hold B) to run back into the spa. It's quicker than getting on your bike.
Left of mossdeep, below mossdeep, around sootopolis city, around seafloor cavern.
Train at the Elite Four. That's a good place to train. Or just use your Vs. Seeker and find trainers who you can fight again.
The best spot to train hunter in is the Feldip Hills as it can support your hunting to level 45.
Go to the islands and re battel people.
u train at mauvile city (re-battle the trainers)
get a good Pokemon and give your bagon a exp. share and go to the elite four
The cave of Origin, levels 32-35
A good spot is probably where level 24 Pokemon live.
the best place to train is on snover in snowypoint
South of mossdeep city you will sound find a diving spot that leads you to seafloor cavern this is where team aqua is.
go to stevens house in mossdeep and get HM07 dive beat the gym leaders in mossdeep to use dive teach dive to a pokemon when you see a dark spot in the water press A it will say the water is deep here. do you want to dive click yes
Try Route 11. Its to the right from Vermillion City.