you need a Pokemon that can surf and use whirlpool first. After you have all that, you surf in the ocean near Oviline City. You'll eventually find your way to Cianwood City and there, you'll find one...
It is an island city to the West to Southwest of Olivine City. It will not be labeled on your map, but it will be towards the left of your map on an island by itself near the Whirl Islands far tot he...