You can’t prevent them from opening a new tab to the project, but you can use the Page OnStartup Event to immediately send the new tab to a non-op page. Something like this in the Page OnStartup Event:
for session in system.perspective.getSessionInfo(projectFilter="MyProject"):
if session.id == page.session.props.id:
if session.activePages > 1:
system.perspective.closePage(pageId=page.props.pageId)