Some dogs tend to react to things out of their normal realm - and to him, people with dark colored skin don't look like what he's used to. So he's probably having a fear-based reaction which led to the snapping.
What he does need is exposure to people with dark skin. I know it gets kind of touchy (some people may take it wrong if you say "hey, you're black! Can my dog meet you?"). But somehow you need to find some friendly people who would be willing to interact with your dog.
And then I would encourage you to not cuddle or reassure your dog whenever he acts fearful, like with his barking or getting upset. By picking him up and petting him at a time when he's acting that way, you are actually reinforcing the very behavior you don't like! Dogs don't really understand reassurance .. they tend to feel they're being praised when they're being held and petted, so in your dog's mind he could be thinking that reacting to people with dark skin is the right thing to do.
I would not try to force him into close interaction with someone he's not comfortable with at this point - it could easily result in a higher level of discomfort. Don't let people who may be scary to him approach him, feed him treats or try to pet him until you've gone through some structured desensitizing.
I'd carry really great treats - chicken breast and roast beef and cheddar cheese - and find someone who is willing to help you out. Then I'd have the person walking back and forth at a distance and you figure out how close you can get before your dog reacts. You want to stay just a bit farther away than where your dog becomes reactive. The idea is that your dog sees the person, doesn't react and THEN you reinforce that with praise and treats. And gradually (one step at a time) you move closer to the person. Every time you move in closer and your dog doesn't react, he gets praise and treats. If you move in and there's a reaction, you remain calm and you don't talk to your dog or pick him up. You may drop your voice and make a "ehhh" sound - not harsh or corrective, just kind of a "I really didn't want you to act that way" sound. And then you stop and wait and see what your dog does. If he continues to react, you will probably want to go a step back. If he calms down and watches the other person without reacting - or even turns to you and ignores the person, then that gets praise and a treat!
You may not make it clear to the person the first session, or even the first couple of sessions. That's okay. You're working on a life-long attitude change in your dog and that's worth spending a bit of time on. The goal is to eventually make it all the way to the person without having your dog get really reactive, and then work it to the point where the dog is receiving the treats from the person instead.
At this time, you may want to start taking your dog to places where there are all sorts of people - in all sorts of colors, ages, clothes, hats, umbrellas, etc. Use great treats and reinforce all the calm, confident behaviors while ignoring your dog if he acts fearful or aggressive. If he's REALLY fearful, you need to move farther away from the situation. But if he's just a bit reactive (barking) then I would just stand there and ignore it if you can.
I work at a fishing lodge and I've found it to be the PERFECT place to socialize dogs with people! There are all sorts of people - big, little, male, female, black, white, brown, wearing rain gear, wearing hats, loud people, people with fishing poles, people with FISH .. *L*, people drinking beer, people laughing and yelling and having too good of a time! I took my last young dog there while working and she just adores men now. They can be wearing a huge poncho and carrying a fishing pole and wearing a floppy hat and she'll still run up to them and greet them with a wiggle. It may be hard to find something like that in your area, but finding a place where there's a large variety of people "types" is important and will really be helpful for you.
Good luck!
Melanie and the gang in Alaska