Aha! You must have moved since you said that you were on the Middlesex/North Surrey border ;-)
Fast, direct services from London to Bath Spa are operated by Great Western from Paddington. Typical journey times are around 1½ hours. Full timetable here:
https://www.gwr.com/~/media/gwr/pdfs/timetables/may-2017/gw1705,-d-,c01,-d-,dl,-d-,512988,-d-,00,-d-,web.pdf?la=en
Slower, but still direct, services from London to Bath Spa are operated by South Western from Waterloo. They can be cheaper than Great Western trains but typically take around 2½ hours. (They're also less frequent). Full timetable here:
https://www.southwesternrailway.com/~/media/pdfs/timetables/ptt20-exeter-and-salisbury.pdf?la=en
(Scroll down to Table 20A)
If you're in London you can't really catch a Great Western service from anywhere other than Paddington (possibly unless you happen to be somewhere with a direct route to Reading, which is the first stop on the Bath Spa services). However you can catch a South Western service from Clapham Junction as well as Waterloo.