I've been teaching a lot of puppies recently and one mistake I see a lot of people making is free-feeding their dogs.
What I mean by that is, leaving food down on the floor all of the time.
When you feed your dog like this it teaches them that food is something that can be taken for granted, it's low-value - you can get it whenever you want.
This makes your training significantly more difficult because now you've lowered your dog's desire to work for food. Why work for it when you can get it for free whenever you like?
So what's the answer?
Firstly, if you have a puppy you should use as much of their dog food as possible in training. It's a good way to get into the training habit and means you don't have to worry about giving them too many treats.
However when you do feed them from a bowl simply place the bowl down, if they don't eat it immediately then pick it up and try again later.
This teaches your dog to eat when food is presented, and not to pick at it throughout the day. In my experience they usually adapt to this routine very quickly and the food motivation usually improves drastically.