Which version of Unreal are you running? Do you have a stack trace or crash report?
I run UE4 primarily on Macs (Mac Pro Late 2013, Retina MacBook Pro 15"), though I do also run it on Windows at times for compiling Windows binaries. Our team is about half Mac and half Windows users (with a few switch hitters in the bunch). There’s no doubt that the Editor under Windows is a little more stable and a little more performant, but the difference isn’t huge these days, and we definitely haven’t seen wholesale crashing. Sometimes we run bleeding edge from source, and that’s often more prone to crashing, but even so, the 4.9 branch has been surprisingly stable for us.
Unfortunately, the iMac (and pretty much most Mac models that they ship right now except the Mac Pro) have kind of wimpy GPUs compared to their CPUs. The iMacs (except the 5K model) have basically laptop GPU chips in them. This is unfortunate, as UE4 makes fairly heavy use of the GPU. There are settings tweaks you can do to improve performance (google or search the forums, there’s a lot of information on it). There probably isn’t anything “wrong” with your machine unless you’ve been experiencing problems in other apps, but I would definitely make sure you’re on the latest non-beta release of the OS.
That all being said, there are many things that can cause crashes in Unreal. If you have any C++ in your project, an improperly handled NULL pointer can bring your system down pretty reliably. In rare cases, bad data in an asset can cause crashes on launch. Moving UE projects between versions, especially going backwards (e.g. 4.9 -> 4.8) can introduce data inconsistencies in the project and assets and shouldn’t be attempted.
I would suggest rolling back one commit at a time until the project starts loading again, then look at what changed in that commit. That will tell you which asset or file or code change is the likely culprit. If you aren’t using version control, well, a) yikes, b) shame on you. 
When working in Unreal, you’re still doing software development and you will get crashes, you will hit problems, you will screw up things, and at times, Epic will too despite the fact that they have a very rigorous testing process. Last I checked, the engine is over 2.5 million lines of code excluding third party libraries, and it supports many platforms and a wide range of hardware. Frustration is definitely part of the job description in game dev.