Stop certain apps from ever using mobile data
Frankly telling : You just can't stop an app from using the data when it is running in the foreground. Android has not implemented any feature till now. However, You can restrict the background data for the apps and save the data. Better you keep mobile data closed when you're using WiFi. I know its frustrating but that's the best you can do.

 Another option is to use a custom ROM like CM. It has the profile option where you can set the usage of your WiFi and data when you're at your home or office.