There's nothing wrong with having a snack as long as it's a low calorie whole food.
Another alternative: Eat a good meal with enough protein so that you don't need a snack. If you get hungry too soon, it could very likely mean that you didn't eat a well balanced meal of whole foods. Eating the right foods in the right proportions should solve the problem.
It's not that you are eating before lunch, that is actually a good thing, as it would cause you to eat less during lunch. It's what you eat. If you are eating fruit or a slice of some sort of vegetable, you are on the right track.
I found taking 1 tsp of guar gum, shaked up in some low calorie drink, with each meal, helped to keep me satisfied for longer - it sets in your stomach, fills you up, and slows down the digestion of your meal.
Honestly, the only thing I've found that helps with between-meal snacking is 100 percent will power and resisting the urge to eat. And this is very hard.
Protein does fill you up a bit better than other things - I know when I used to eat omelets in the morning, I'd stay full for quite a while. Maybe try a fruit smoothie - these would be good as either a meal or a snack because they're so filling. To make one, mix 1/2 cup vanilla yogurt, 1/2 cup of whatever fruit you want (I use frozen berries), a drizzle each of milk and any fruit juice you have on hand. Mix in a blender, and if you like, strain out seeds, pulp and skin with one of those mini hand strainers (the kind used to pat powdered sugar onto cakes). This makes a very big glass and it's very filling...and healthy.
Also, try doing some light exercise to ward off hunger. If you want to snack, find a spot and do a couple crunches, a couple squats, and maybe a push-up or two. Nothing strenuous.