please don't touch my dog!

S
We have a Yorkiee poo.  He is 3 and a half years old. We got him at 6 weeks from a family that couldn't care for him.  So he probably has attachment issues from his mother.  From the beginning his temperament has been challenging.  While he can be sweet and cuddly to is and people he knows well, he can flip very quickly when he feels threatened or scared.  We are working with a private trainer and he has been improving a lot and we have been working on ways that we can chNge our selves and the environment to not make him always feel entitled.  It is a work in progress.  We aren't giving up on him epically since we know what will make him flip and avoid thoes situations. In public he is very docile and alright most of the time someone can get away with petting him I try very hard to discourage it because he might feel scared quickly.  I never let children pet him unless they know him very well like family. 
The biggest problem is when we have guest come over.  I usually hold him far away until he calms down that people he doesn't know are in the house this takes about a min. Then he'll observe them from afar and maybe come near to sniff them at his own time.  I've said to everyone, let him come to you,  please don't pet him he won't like it. Most of the time he'll be happy enough sitting quietly next to you.   
Time and time again I get people giving me this line "oh I'm good with dogs he won't bite me" so they approach him. And he'll growl that's his warning and I tell them to back off!! They still try to approach him and he'll freak out and growl and bite. Then he gets labeled a bad dog! I know his behaviors is not ideal but please trust the owners that he isn't always friendly.  He lives here and has a right to tell you he doesn't want to be touched.  We do not reward him with coddles or treats wen he does this so its not encouraged.  Would you approach a  German Shepard that is growling? Just because my dog looks cute and cuddly doesn't mean he's always friendly.