As already mentioned, changing from the default port fixes this issue, however I also wanted to share a solution to a specific underlying cause of this problem in case it proves helpful to others.
For myself, I was using Jupyter Notebook on Windows 10 installed through Anaconda, with Kaspersky Endpoint Security 10 on the machine. I found that it was Kaspersky that was blocking traffic over the websocket connection, which is required for the Jupyter web app to talk to the underlying Python kernel.
This was very confusing as the port was not explicitly listed as 'blocked' in any way I could see in either Windows 10 or Kaspersky, and the Jupyter process did not detect it as being in use by anything at startup.
After investigating with my works IT department, we found this is due to Kaspersky's heuristic threat detection intercepting the traffic over the websocket.
The issue was resolved by adding http://localhost/*
to the trusted URL's on the Kaspersky policy (under the Web-Antivirus settings).