I have a few suggestions and a bit of personal experience - both as a mother and from when I was a kid.
My experience with the "one bite" rule. It works. I have never had a kid it didn't work on (when I worked in a preschool and baby-sat) - it worked on my daughter, and it worked on me when I was little. Here's the catch: DON'T FIGHT WITH THEM! Give them the choice, but make it a kind of "my way or the highway" choice.
With my daughter, who did this a bit at close to the same age (she was a little older), I told her what my mother had told me when I was little: if you take one bite, and don't like it, you don't have to eat it. I'll take it off your plate (and, if it's the only thing on the plate or if they try everything and don't want it, replace it with something else). Otherwise, that's all you're getting. Children will NOT starve themselves (generally) and they learn really quickly that you worry about that. So they'll refuse to eat it and after a certain amount of time they know you'll give in and give them whatever it is they want. They're tricky :)
This also means that if you serve them a couple things they'll eat and one they won't, they may just eat the couple things and leave the one and not be hungry. Don't force them to try that one bite, just refuse to give them anything else (ESPECIALLY dessert of any kind!) until they take that one bite. If they say they're full, then they're full and shouldn't need anything else. If they're still hungry, why look! There's a bunch of green beans sitting right there on their plate! :)
If this hard-mom tact isn't for you (or if you want to only do it for a couple days, and then serve something you know he'll like), try making one of his "favorites" as dinner for the whole family - with a few additions. Take the "mac and cheese" fanatics of the world. Grab a box of Velveeta Shells and Cheese (which has a more "grown up" taste than the traditional Kraft Mac and Cheese) and follow one of the recipes on the side of the box - like the one which tells you to add tomatoes, onions and peppers as well as some sort of ground beef. Then serve it to the whole family. This will send your child the message that he is NOT getting special treatment - he's still eating the same dinner as everyone else - but just because it IS the same dinner as you doesn't mean it can't be something he enjoys.
Another issue you may want to look into is whether or not this acting out has anything to do with the upcoming baby? (Congrats, by the way :) ) Is he perhaps acting out in response to this change in his life - or to the move you just did? Many children react to a change in their life by trying to exert control over something else - in this case, their food. Perhaps, if this is the cause, talking with him about it will help him deal with his feelings and then you can figure out together something he can do to make him feel more in control of the whole thing (and, even, his dinner!). If it's the baby, let him go to the store and pick out a special toy/blanket that HE gets to give the baby. If it's the move, perhaps let him pick out a special poster that he can put up on his wall/door of his room. For his food, let him choose between two kinds of veggies for what everyone will have that night (ie Should we have carrots or green beans with our dinner tonight? You pick!). Perhaps these things will help him get over any feelings of loss of control he may or may not be experiencing.
Whatever happens, I hope things work out for you - without you wanting to pull your hair out (as many of us do when dealing with those terrible twos... and threes...).
Best Wishes.