You could create a sproc that starts the job - specify 'EXECUTE AS' in the definition of the sproc so that it runs as a user who is allowed to start jobs.
Alternatively, you could grant the users access to MSDB and include them in SQLAgentOperatorRole. However, if you do choose this option, the users will be able to add/delete/start etc any job.
Personally, I would you the first option (EXECUTE AS)