A dialogue system for disease diagnosis aims at making a diagnosis by conversing with patients. Existing disease diagnosis dialogue systems highly rely on data-driven methods and statistical features, lacking profound comprehension of medical knowledge, such as symptom-disease relations. In addition, previous work pays less attention to demographic attributes of a patient, which are important factors in clinical diagnoses. To tackle these issues, this work presents a graph based and demographic attributes aware dialogue system for disease diagnosis. Specifically, we first build a weighted bidirectional graph based on clinical dialogues to depict the relationship between symptoms and diseases and then present a bidirectional graph based deep Q-network (BG-DQN) for dialogue management. By extending Graph Convolutional Network (GCN) to learn the embeddings of diseases and symptoms from both the structural and attribute information in the graph, BG-DQN could capture the relations between diseases and symptoms better. Moreover, BG-DQN also encodes the demographic attributes of a patient to assist the disease diagnosis process. Experimental results show that the proposed dialogue system outperforms several competitive methods in terms of diagnostic accuracy. More importantly, our method can complete the task with less dialogue turns and possesses better distinguishing capability on diseases with similar symptoms.