Since you have already caught Gyarados, I would suggest getting exchanging the Red scale you have for an Exp. Share at Mr Pokemon's house. Then give the Exp. Share to the weakest Pokemon that always faints, and start grinding in any tall grass with your strongest Pokemon.
You can also challenge some Trainers that you haven't battled. And like sumwun said, you can keep challenging he Rocket grunts until you beat them. The more you battle, the more experience points you get. It's pretty hard to train before the E4 without challenging Trainers, Gym leaders, and they can be challenged only once. So for now, the only method is to train/grind in the wild.