Hey guys, I just init the swarm in my current mac, which have the same issue with you.
$ docker swarm init --advertise-addr 192.168.99.100
If I create a manager1 firstly, then ssh into it and init the swarm, it works.
$ docker-machine create manager1
$ docker-machine ip manager1
# 192.168.99.104
$ docker-machine ssh manager1
docker@manager1:~$ docker swarm init --advertise-addr 192.168.99.104
Now, I create a worker1, then ssh into it and join it to the swarm cluster, it works perfectly.
$ docker-machine create -d virtualbox worker1
$ docker-machine ssh worker1
docker@worker1:~$ docker swarm join --token SWMTKN-1-1s06e6ubid2axcj3h9bo06smlj32jhqp74pj1wkmflb3f0x5pi-cde5dm1xdzo3eum3s7lrj96aa 192.168.99.104:2377
So, the problem is that we might not init the swarm in our current macos, but in a manager we create.