Vao Tsun tiene la respuesta correcta para usar insert . . . select (y debidamente votado).
Sin embargo, está intentando usar una subconsulta en values() . Eso está permitido, pero una subconsulta necesita sus propios paréntesis. Entonces su versión funcionaría como:
insert into warehouse (name, district_id)
values ( 'Ghodasar-WH', (select id from district where name = 'Ahmedabad') );