Method 1: Hard (Official) Way
Follow the official instructions from Raspberry Pi in below link if you like a Rube Goldberg / Heath Robinson way of doing things:
https://www.raspberrypi.org/documentation/hardware/computemodule/cm-emmc-flashing.md
Method 2: Easy Way
Solution tested and known to work with Mac OSX version 10.14.4 on a Macbook Pro 2018. The adapters used with the legacy USB cable interface to connect to my Macbooks USB-C/Thunderbolt ports:
Ailun Type C Adapter,USB C Adapter
Step 1: Download & install Etcher for your OS
https://www.balena.io/etcher/
Step 2: Configure Hardware Connections
Insert a the MicroUSB end of the cable into the port labelled "USB Slave"and the other end into your computer's USB port. Picture below shows USB-C adapter attached for users with only USB-C ports (new Macbooks).
NOTE: If NOT connecting to IO board with a USB-C lead (which supplies power to it) as pictured in example, connect power lead to board before proceeding.
My Compute Module IO Board (v3.0) shipped with the jumper correctly set, but ensure your "USB Slave Boot Enable" is set to "EN" and looks as below:
Step 3: Flash eMMC Storage with Raspbian Image
Start Etcher and then:
Set the Source: Choose Raspbian Image to be installed on Compute Module
Chose the .img file of a local Raspbian image
Set the Target: Choose the Compute Module which will appear as a mass storage device
Compute Module now appears as a mass storage device to select as a flashing target. Select it and choose "Continue":
Click "Flash"
Voila. Raspbian is now installed on your Compute Module's eMMC storage. Remove the MicroUSB cable from the "USB Slave" port and the compute module can now be booted via the Compute Module IO Board by just inserting the power cable into it into the Micros USB "Power In" port.
Note that whatever the size of your eMMC storage- 8/16/24/32 GB - the file system will be expanded automatically to the maximum extent possible.