You may use pokemon that learn the move by TM, but you must also obtain certain pokemon as early as possible in order to learn Rain Dance. You may use these pokemon until the TM is available. You may also use any water or electric type pokemon in addition to the required pokemon.* Unova require that all pokemon learn the move. Read specific rules before proceeding!
http://bulbapedia.bulbagarden.net/wiki/Rain_Dance_(move)
You must obtain and teach Rain Dance to the following pokemon that learn it by level-up per region (don't waste your TM on any of these):
Johto:
Choose at least any three pokemon with learnset:
Poliwrath/Politoed (before the first gym), Slowbro/Slowking (before the 2nd gym), Gyrados (before 2nd badge), Lapras (before 2nd badge), Azurill/Marill/Azumarill (before 5th badge), Wooper/Quagsire
(Before 2nd Badge).
TM: You must teach Rain Dance to one other pokemon, after obtaining the tm in slowpoke cave after leaning surf after the 4th gym.
Optional: You may select additional pokemon that don't learn the move as long as they are water, electric, bug, steel, or grass (up to 2)
Hoenn:
Obtain at least 3 pokemon that learn Rain Dance by Moveset:
Azurill/Marill/Azumarill (before 1st gym), Lotad/Lombre/Ludicolo (before 1st gym), Milotic (before 6th badge), and Castform (before 6th badge), Gyarados (before 2nd badge).
TM - You must teach Rain Dance to an additional pokemon. The Tm is located in the abandoned ship, you can access after the 5th badge.
Optional: You may select additional pokemon that don't learn the move as long as they are water, electric, bug, steel, or grass (up to 2)
Sinnoh:
Obtain at least 3 pokemon that learn Rain Dance by Moveset.
Shellos/Gastrodon (before 3rd badge), Finneon/Lumineon (before 3rd badge), Azurill/Marill/Azumarill (before 3rd gym), Wooper/Quagsire (before 3rd gym), Gyrados (before 3rd gym)
TM - You may either obtain 10 blue shards and trade them in on route 212, or you can wait until you get to Sunyshore City to get one. You must teach at least one other pokemon the TM.
Optional: You may select additional pokemon that don't learn the move as long as they are water, electric, bug, steel, or grass. (up to 2)
Unova:
B/W
Obtain at least 3 pokemon that learn Rain Dance by Moveset:
Seismatoad (before 2nd badge), Carracost (before 4th badge), Swanna (before the 5th badge), Jellicent (before the 6th badge)
TM - Must select three additional pokemon to learn Rain Dance. TM is available in Mistralton Poke Center. You must teach 3 other pokemon Rain Dance via this TM.
B/W2:
Obtain at least 3 pokemon that learn Rain Dance by Moveset:
Marill (before 1st gym), Jellicent (before 6th gym), Swanna (before 5th gym), Seimatoad (before 7th gym)
TM - Must select three additional pokemon to learn Rain Dance. TM is available in Mistralton Poke Center. You must teach 3 other pokemon Rain Dance via this TM.